]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
autoWorkspaces: Merge empty workspaces with the always empty one
authorOwen W. Taylor <otaylor@fishsoup.net>
Wed, 16 Feb 2011 20:07:45 +0000 (21:07 +0100)
committerAdel Gadllah <adel.gadllah@gmail.com>
Tue, 8 Mar 2011 18:46:51 +0000 (19:46 +0100)
When closing a workspace due to the last window on that workspace
closing, switch to the overview and show the always empty workspace
rather then just going to the adjacent workspace.

Based on a patch from Adel Gadllah <adel.gadllah@gmail.com>.

https://bugzilla.gnome.org/show_bug.cgi?id=642188

js/ui/main.js

index fc8acbd61093333a448f57cf43110ee245f40472..a57ba2433b58115590bf3d67a9b396b99fca54a6 100644 (file)
@@ -262,12 +262,28 @@ function _checkWorkspaces() {
         emptyWorkspaces.push(false);
     }
 
+    let activeWorkspaceIndex = global.screen.get_active_workspace_index();
+    let currentWorkspaceEmpty = emptyWorkspaces[activeWorkspaceIndex];
+
+    if (currentWorkspaceEmpty) {
+        // "Merge" the empty workspace we are removing with the one at the end
+        wm.blockAnimations();
+    }
+
     // Delete other empty workspaces; do it from the end to avoid index changes
     for (i = emptyWorkspaces.length - 2; i >= 0; i--) {
         if (emptyWorkspaces[i])
             global.screen.remove_workspace(_workspaces[i], global.get_current_time());
     }
 
+    if (currentWorkspaceEmpty) {
+        global.screen.get_workspace_by_index(global.screen.n_workspaces - 1).activate(global.get_current_time());
+        wm.unblockAnimations();
+
+        if (!overview.visible)
+            overview.show();
+    }
+
     _checkWorkspacesId = 0;
     return false;
 }